/*
 *  DAO para funções de membros
 */
package AcessoBD;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import Modelos.BeanMembro;
import Modelos.BeanPublicacao;
import Utilidades.ExpedidorDeEmail;
import Utilidades.GeradorDeSenha;
import Utilidades.GeradorDeHash;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;

public class MembroApeteDAO {

    public List<BeanPublicacao> listarPublicacaoMembro(int membroId) throws DAOException {
        List<BeanPublicacao> listaPublicacao = null;
        ConnectionFactory factory = new ConnectionFactory();
        Connection conn = null;
        Statement stm = null;
        ResultSet rs = null;

        String sql = "CALL publicacao_membro(" + membroId + ");";

        try {
            conn = factory.getMemberConnection();
            stm = conn.createStatement();
            rs = stm.executeQuery(sql);
            listaPublicacao = new ArrayList<BeanPublicacao>();

            while (rs.next()) {
                int idPublicacao = rs.getInt("id_publicacao");
                int idMembro = rs.getInt("id_membro");
                String titulo = rs.getString("titulo");
                String resumo = rs.getString("resumo");
                Date dataPublicacao = rs.getDate("data_publicacao");
                String categoria = rs.getString("categoria");
                String tipo = rs.getString("tipo");
                boolean cadastravel = false;

                BeanPublicacao pub = new BeanPublicacao(
                        idPublicacao,
                        idMembro,
                        null,
                        titulo,
                        resumo,
                        null,
                        dataPublicacao,
                        categoria,
                        tipo,
                        cadastravel);

                listaPublicacao.add(pub);
            }

        } catch (SQLException sqle) {
            sqle.printStackTrace();
        } finally {
            factory.closeConnection(stm, rs);
            if (listaPublicacao != null && listaPublicacao.isEmpty()) {
                listaPublicacao = null;
            }
            return listaPublicacao;
        }
    }
}
